import pandas as pd
import os

# 读取字段释义的Excel文件
data = pd.read_excel('字段释义.xlsx')

# 生成字段名和字段含义的映射关系
name_change = dict(zip(data['字段名'], data['字段含义']))

# 获取data文件夹中的所有文件列表
data_list = os.listdir('data')

# 确保data2文件夹存在
if not os.path.exists('data2'):
    os.makedirs('data2')

for file_name in data_list:
    print(file_name)
    path = os.path.join('data', file_name)

    try:
        # 读取CSV文件
        df = pd.read_csv(path, engine='python', encoding='utf-8')

        # 替换字段名为字段含义
        df.rename(columns=name_change, inplace=True)

        # 构造输出文件路径，确保扩展名为.xlsx
        output_file_name = os.path.splitext(file_name)[0] + '.csv'
        output_path = os.path.join('data2', output_file_name)

        # 保存处理后的数据到data2文件夹
        df.to_csv(output_path, index=False)

        print(f"已处理并保存: {output_file_name}")

    except Exception as e:
        print(f"处理文件 {file_name} 时出错: {e}")

print("字段名替换完成，文件已保存到data2文件夹。")
dic = {'device_13_2_meter_1302': '二号舵桨转舵A电压电流及功率测量表',
       'Port2_ksbg_1': '柴油发电机组运行参数表', 'Port2_ksbg_2': '三号柴油发电机组有功功率测量表',
       'Port1_ksbg_5': '左舵桨主开关电流测量表', 'device_1_2_meter_102': '一号舵桨转舵A电压电流及功率测量表',
       'Port1_ksbg_2': '停泊/应急发电机组运行参数表',
       'device_13_11_meter_1311': '折臂吊车液压系统电压电流及功率测量表',
       'Port4_ksbg_7': '二号推进变频器功率测量表', 'Port2_ksbg_4': '推进系统主开关电流测量表',
       'Ajia_plc_1': 'A架角度和启动柜电压电流测量表',
       'device_13_14_meter_1314': '二号门架主液压泵电压电流及功率测量表',
       'Port4_ksbg_9': '二号舵桨方位及转速测量表', 'Port3_ksbg_8': '一号推进变频器功率测量表',
       'Port1_ksbg_4': '推进系统及柴油发电机组状态测量表', 'Port3_ksbg_10': '一号舵桨方位及转速测量表',
       'Port1_ksbg_3': '一号和二号柴油发电机组有功功率及运行状态测量表',
       'device_1_3_meter_103': '一号舵桨转舵B电压电流及功率测量表',
       'device_1_15_meter_115': '绞车变频器电压电流及功率测量表',
       'Port2_ksbg_3': '三号和四号柴油发电机组有功功率及运行状态测量表',
       'device_1_5_meter_105': '一号门架主液压泵电压电流及功率测量表',
       'Jiaoche_plc_1': '绞车A、B、C放缆长度、速度及张力测量表',
       'Port1_ksbg_1': '一号和二号柴油发电机组运行参数及燃油消耗率测量表',
       'Port3_ksbg_9': '艏侧推螺旋桨螺距及功率测量表',
       'device_13_3_meter_1303': '二号舵桨转舵B电压电流及功率测量表',
       'Port4_ksbg_8': '可伸缩推螺距、方位及功率测量表'}

import os

for k, v in dic.items():

    old_filename = f"data2/{k}.csv"
    new_filename = f"data2/{v}.csv"

    # 重命名文件
    try:
        os.rename(old_filename, new_filename)
        print(f"文件重命名成功: {old_filename} -> {new_filename}")
    except FileNotFoundError:
        print(f"文件未找到: {old_filename}")
    except PermissionError:
        print(f"权限错误: 无法重命名 {old_filename}")
    except Exception as e:
        print(f"重命名文件时出错: {e}")
